package com.cskaoyan.mall.pay.service.impl;

import com.cskaoyan.mall.commons.exception.BizException;
import com.cskaoyan.mall.pay.constants.PayRetCode;
import com.cskaoyan.mall.pay.form.PaymentRequest;
import com.cskaoyan.mall.pay.service.PayCoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class PayCoreServiceImpl implements PayCoreService {

    @Autowired
    PayHelper payHelper;

    @Override
    public String aliPay(PaymentRequest request) {
        // 1. 请求支付宝后端，获取支付二维码
        String qrCodeFile = payHelper.test_trade_precreate(request);
        if (qrCodeFile == null) {
            // 获取支付二维码失败，抛出异常
            throw new BizException(PayRetCode.GET_CODE_FALIED.getCode(), PayRetCode.GET_CODE_FALIED.getMsg());
        }

        // 获取支付二维码成功
        // tb_paymen插入一条记录，记录订单的支付信息  TRADE_PROCESSING

        return qrCodeFile;
    }

    @Override
    public boolean queryAlipayRet(String orderId) {

        boolean success = payHelper.test_trade_query(orderId);
        if (success) {
            // 支付成功
            // 1. 修改tb_paymen中，订单的支付状态 TRADE_SUCCESS ，成功时间，完成时间
            //  调用订单服务来完成
            // 2. 修改订单的状态 ——> 已支付
            // 3. 查询出订单中的所有商品条目，根据每一个商品条目下单的数量，扣减商品的锁定库存
        } else {
            // 支付失败
            // 1.  修改tb_paymen中，订单的支付状态 TRADE_FAILURE， 支付完成时间
        }

        return false;
    }
}
